home *** CD-ROM | disk | FTP | other *** search
/ Team Palmtops 7 / Palmtops_numero07.iso / WinCE / SDKWindowsCE / HandHeldPCPro30 / sdk.exe / Jupiter SDK / data1.cab / Desktop_Components / inc / rapi.h
Encoding:
C/C++ Source or Header  |  1999-02-19  |  12.5 KB  |  380 lines

  1. // --------------------------------------------------------------------------
  2. //
  3. // Copyright (c) 1995-1997, Microsoft Corporation
  4. //
  5. // Module:
  6. //
  7. //     rapi.h
  8. //
  9. // Purpose:
  10. //
  11. //    Master include file for Windows CE Remote API
  12. //
  13. // --------------------------------------------------------------------------
  14.  
  15. #ifndef RAPI_H
  16. #define RAPI_H
  17.  
  18. #include <windows.h>
  19.  
  20. //
  21. // The Windows CE WIN32_FIND_DATA structure differs from the
  22. // Windows WIN32_FIND_DATA stucture so we copy the Windows CE
  23. // definition to here so that both sides match.
  24. //
  25. typedef struct _CE_FIND_DATA {
  26.     DWORD    dwFileAttributes;
  27.     FILETIME ftCreationTime;
  28.     FILETIME ftLastAccessTime;
  29.     FILETIME ftLastWriteTime;
  30.     DWORD    nFileSizeHigh;
  31.     DWORD    nFileSizeLow;
  32.     DWORD    dwOID;
  33.     WCHAR    cFileName[MAX_PATH];
  34. } CE_FIND_DATA, *LPCE_FIND_DATA;
  35.  
  36. typedef CE_FIND_DATA** LPLPCE_FIND_DATA;
  37.  
  38. //
  39. // These are flags for CeFindAllFiles
  40. //
  41. #define FAF_ATTRIBUTES      ((DWORD) 0x01)
  42. #define FAF_CREATION_TIME   ((DWORD) 0x02)
  43. #define FAF_LASTACCESS_TIME ((DWORD) 0x04)
  44. #define FAF_LASTWRITE_TIME  ((DWORD) 0x08)
  45. #define FAF_SIZE_HIGH       ((DWORD) 0x10)
  46. #define FAF_SIZE_LOW        ((DWORD) 0x20)
  47. #define FAF_OID             ((DWORD) 0x40)
  48. #define FAF_NAME            ((DWORD) 0x80)
  49. #define FAF_FLAG_COUNT      ((UINT)  8)
  50. #define FAF_ATTRIB_CHILDREN ((DWORD)            0x01000)
  51. #define FAF_ATTRIB_NO_HIDDEN ((DWORD)            0x02000)
  52. #define FAF_FOLDERS_ONLY    ((DWORD)            0x04000)
  53. #define FAF_NO_HIDDEN_SYS_ROMMODULES ((DWORD)    0x08000)
  54. #define FAF_GETTARGET        ((DWORD)            0x10000)
  55.  
  56. #define FAD_OID             ((WORD) 0x01)
  57. #define FAD_FLAGS           ((WORD) 0x02)
  58. #define FAD_NAME            ((WORD) 0x04)
  59. #define FAD_TYPE            ((WORD) 0x08)
  60. #define FAD_NUM_RECORDS     ((WORD) 0x10)
  61. #define FAD_NUM_SORT_ORDER  ((WORD) 0x20)
  62. #define FAD_SIZE            ((WORD) 0x40)
  63. #define FAD_LAST_MODIFIED   ((WORD) 0x80)
  64. #define FAD_SORT_SPECS      ((WORD) 0x100)
  65. #define FAD_FLAG_COUNT      ((UINT) 9)
  66.  
  67. #ifndef FILE_ATTRIBUTE_INROM
  68. #define FILE_ATTRIBUTE_INROM        0x00000040
  69. #endif
  70. #ifndef FILE_ATTRIBUTE_ROMSTATICREF
  71. #define FILE_ATTRIBUTE_ROMSTATICREF 0x00001000
  72. #endif
  73. #ifndef FILE_ATTRIBUTE_ROMMODULE
  74. #define FILE_ATTRIBUTE_ROMMODULE    0x00002000
  75. #endif
  76.  
  77. //
  78. // The following is not a standard Windows CE File Attribute.
  79. //
  80. #ifndef FILE_ATTRIBUTE_HAS_CHILDREN
  81. #define FILE_ATTRIBUTE_HAS_CHILDREN 0x00010000
  82. #endif
  83. #ifndef FILE_ATTRIBUTE_SHORTCUT
  84. #define FILE_ATTRIBUTE_SHORTCUT        0x00020000
  85. #endif
  86.  
  87. #undef  INTERFACE
  88. #define INTERFACE   IRAPIStream
  89.  
  90. typedef enum tagRAPISTREAMFLAG
  91. {
  92.     STREAM_TIMEOUT_READ
  93. } RAPISTREAMFLAG;
  94.  
  95. DECLARE_INTERFACE_ (IRAPIStream,  IStream)
  96. {
  97.         STDMETHOD(SetRapiStat)( THIS_ RAPISTREAMFLAG Flag, DWORD dwValue) PURE;
  98.         STDMETHOD(GetRapiStat)( THIS_ RAPISTREAMFLAG Flag, DWORD *pdwValue) PURE;
  99. };
  100.  
  101. // RAPI extension on Windows CE (e.g., MyFunctionFOO) called via CeRapiInvoke should be declared as:
  102. // EXTERN_C RAPIEXT MyFunctionFOO;
  103. typedef  HRESULT (STDAPICALLTYPE RAPIEXT)(
  104.          DWORD            cbInput,            // [IN]
  105.          BYTE            *pInput,            // [IN]
  106.          DWORD            *pcbOutput,             // [OUT]
  107.          BYTE            **ppOutput,            // [OUT]
  108.          IRAPIStream    *pIRAPIStream        // [IN]
  109.          );
  110.  
  111. //
  112. // The following definitions are for the client side only,
  113. // because they are already defined on Windows CE.
  114. //
  115. #ifndef UNDER_CE
  116.  
  117. #include <stddef.h>
  118.  
  119. typedef struct STORE_INFORMATION {
  120.     DWORD dwStoreSize;
  121.     DWORD dwFreeSize;
  122. } STORE_INFORMATION, *LPSTORE_INFORMATION;
  123.  
  124. typedef DWORD CEPROPID;
  125. typedef CEPROPID *PCEPROPID;
  126. #define TypeFromPropID(propid) LOWORD(propid)
  127.  
  128. typedef DWORD CEOID;
  129. typedef CEOID *PCEOID;
  130.  
  131. typedef struct _CEFILEINFO {
  132.     DWORD   dwAttributes;
  133.     CEOID   oidParent;
  134.     WCHAR   szFileName[MAX_PATH];
  135.     FILETIME ftLastChanged;
  136.     DWORD   dwLength;
  137. } CEFILEINFO;
  138.  
  139. typedef struct _CEDIRINFO {
  140.     DWORD   dwAttributes;
  141.     CEOID   oidParent;
  142.     WCHAR   szDirName[MAX_PATH];
  143. } CEDIRINFO;
  144.  
  145. typedef struct _CERECORDINFO {
  146.     CEOID  oidParent;
  147. } CERECORDINFO;
  148.  
  149. #define CEDB_SORT_DESCENDING        0x00000001
  150. #define CEDB_SORT_CASEINSENSITIVE   0x00000002
  151. #define CEDB_SORT_UNKNOWNFIRST      0x00000004
  152. #define CEDB_SORT_GENERICORDER      0x00000008
  153.  
  154. typedef struct _SORTORDERSPEC {
  155.     CEPROPID  propid;
  156.     DWORD     dwFlags;
  157. } SORTORDERSPEC;
  158.  
  159. #define CEDB_MAXDBASENAMELEN  32
  160. #define CEDB_MAXSORTORDER     4
  161.  
  162. #define CEDB_VALIDNAME      0x0001
  163. #define CEDB_VALIDTYPE      0x0002
  164. #define CEDB_VALIDSORTSPEC  0x0004
  165. #define CEDB_VALIDMODTIME   0x0008
  166.  
  167. typedef struct _CEDBASEINFO {
  168.     DWORD   dwFlags;
  169.     WCHAR   szDbaseName[CEDB_MAXDBASENAMELEN];
  170.     DWORD   dwDbaseType;
  171.     WORD    wNumRecords;
  172.     WORD    wNumSortOrder;
  173.     DWORD   dwSize;
  174.     FILETIME ftLastModified;
  175.     SORTORDERSPEC rgSortSpecs[CEDB_MAXSORTORDER];
  176. } CEDBASEINFO;
  177.  
  178. typedef struct _CEDB_FIND_DATA {
  179.     CEOID       OidDb;
  180.     CEDBASEINFO DbInfo;
  181. } CEDB_FIND_DATA, *LPCEDB_FIND_DATA;
  182.  
  183. typedef CEDB_FIND_DATA ** LPLPCEDB_FIND_DATA;
  184.  
  185. #define OBJTYPE_INVALID     0
  186. #define OBJTYPE_FILE        1
  187. #define OBJTYPE_DIRECTORY   2
  188. #define OBJTYPE_DATABASE    3
  189. #define OBJTYPE_RECORD      4
  190.  
  191. typedef struct _CEOIDINFO {
  192.     WORD  wObjType;
  193.     WORD  wPad;
  194.     union {
  195.         CEFILEINFO   infFile;
  196.         CEDIRINFO    infDirectory;
  197.         CEDBASEINFO  infDatabase;
  198.         CERECORDINFO infRecord;
  199.     };
  200. } CEOIDINFO;
  201.  
  202. #define CEDB_AUTOINCREMENT      0x00000001
  203.  
  204. #define CEDB_SEEK_CEOID         0x00000001
  205. #define CEDB_SEEK_BEGINNING     0x00000002
  206. #define CEDB_SEEK_END           0x00000004
  207. #define CEDB_SEEK_CURRENT       0x00000008
  208. #define CEDB_SEEK_VALUESMALLER     0x00000010
  209. #define CEDB_SEEK_VALUEFIRSTEQUAL  0x00000020
  210. #define CEDB_SEEK_VALUEGREATER     0x00000040
  211. #define CEDB_SEEK_VALUENEXTEQUAL   0x00000080
  212.  
  213. typedef struct _CEBLOB {
  214.     DWORD       dwCount;
  215.     LPBYTE      lpb;
  216. } CEBLOB;
  217.  
  218. #define CEVT_I2       2
  219. #define CEVT_UI2      18
  220. #define CEVT_I4       3
  221. #define CEVT_UI4      19
  222. #define CEVT_FILETIME 64
  223. #define CEVT_LPWSTR   31
  224. #define CEVT_BLOB     65
  225.  
  226. typedef union _CEVALUNION {
  227.     short           iVal;
  228.     USHORT          uiVal;
  229.     long            lVal;
  230.     ULONG           ulVal;
  231.     FILETIME        filetime;
  232.     LPWSTR          lpwstr;
  233.     CEBLOB          blob;
  234. } CEVALUNION;
  235.  
  236. #define CEDB_PROPNOTFOUND 0x0100
  237. #define CEDB_PROPDELETE   0x0200
  238. typedef struct _CEPROPVAL {
  239.     CEPROPID    propid;
  240.     WORD        wLenData;
  241.     WORD        wFlags;
  242.     CEVALUNION  val;
  243. } CEPROPVAL, *PCEPROPVAL;
  244.  
  245. #define CEDB_MAXDATABLOCKSIZE  4092
  246. #define CEDB_MAXPROPDATASIZE   (CEDB_MAXDATABLOCKSIZE*16)
  247. #define CEDB_MAXRECORDSIZE     (128*1024)
  248.  
  249. #define CEDB_ALLOWREALLOC  0x00000001
  250.  
  251. #define SYSMEM_CHANGED    0
  252. #define SYSMEM_MUSTREBOOT 1
  253. #define SYSMEM_REBOOTPENDING 2
  254. #define SYSMEM_FAILED 3
  255.  
  256. typedef struct _CEOSVERSIONINFO{
  257.     DWORD dwOSVersionInfoSize; 
  258.     DWORD dwMajorVersion; 
  259.     DWORD dwMinorVersion; 
  260.     DWORD dwBuildNumber; 
  261.     DWORD dwPlatformId; 
  262.     WCHAR szCSDVersion[ 128 ]; 
  263. } CEOSVERSIONINFO, *LPCEOSVERSIONINFO;
  264.  
  265. #define AC_LINE_OFFLINE                 0x00
  266. #define AC_LINE_ONLINE                  0x01
  267. #define AC_LINE_BACKUP_POWER            0x02
  268. #define AC_LINE_UNKNOWN                 0xFF
  269.  
  270. #define BATTERY_FLAG_HIGH               0x01
  271. #define BATTERY_FLAG_LOW                0x02
  272. #define BATTERY_FLAG_CRITICAL           0x04
  273. #define BATTERY_FLAG_CHARGING           0x08
  274. #define BATTERY_FLAG_NO_BATTERY         0x80
  275. #define BATTERY_FLAG_UNKNOWN            0xFF
  276.  
  277. #define BATTERY_PERCENTAGE_UNKNOWN      0xFF
  278.  
  279. #define BATTERY_LIFE_UNKNOWN        0xFFFFFFFF
  280.  
  281. typedef struct _SYSTEM_POWER_STATUS_EX {
  282.     BYTE ACLineStatus;
  283.     BYTE BatteryFlag;
  284.     BYTE BatteryLifePercent;
  285.     BYTE Reserved1;
  286.     DWORD BatteryLifeTime;
  287.     DWORD BatteryFullLifeTime;
  288.     BYTE Reserved2;
  289.     BYTE BackupBatteryFlag;
  290.     BYTE BackupBatteryLifePercent;
  291.     BYTE Reserved3;
  292.     DWORD BackupBatteryLifeTime;
  293.     DWORD BackupBatteryFullLifeTime;
  294. }   SYSTEM_POWER_STATUS_EX, *PSYSTEM_POWER_STATUS_EX, *LPSYSTEM_POWER_STATUS_EX;
  295.  
  296. typedef struct _RAPIINIT
  297. {
  298.     DWORD cbSize;
  299.     HANDLE heRapiInit;
  300.     HRESULT hrRapiInit;
  301. } RAPIINIT;
  302.  
  303. STDAPI CeRapiInitEx(RAPIINIT*);
  304. STDAPI CeRapiInit();
  305. STDAPI CeRapiUninit();
  306. STDAPI CeRapiGetError(void);
  307. STDAPI CeRapiFreeBuffer(LPVOID);
  308. STDAPI_( HRESULT ) CeRapiInvoke(LPCWSTR, LPCWSTR,DWORD,BYTE *, DWORD *,BYTE **, IRAPIStream **,DWORD);
  309.  
  310. STDAPI_(CEOID)  CeCreateDatabase     (LPWSTR, DWORD, WORD, SORTORDERSPEC*);
  311. STDAPI_(BOOL  ) CeDeleteDatabase     (CEOID);
  312. STDAPI_(BOOL  ) CeDeleteRecord       (HANDLE, CEOID);
  313. STDAPI_(HANDLE) CeFindFirstDatabase  (DWORD);
  314. STDAPI_(CEOID)  CeFindNextDatabase    (HANDLE);
  315. STDAPI_(BOOL  ) CeOidGetInfo         (CEOID, CEOIDINFO*);
  316. STDAPI_(HANDLE) CeOpenDatabase       (PCEOID, LPWSTR, CEPROPID, DWORD, HWND);
  317. STDAPI_(CEOID)  CeReadRecordProps    (HANDLE, DWORD, LPWORD, CEPROPID*, LPBYTE*, LPDWORD);
  318. STDAPI_(CEOID)  CeSeekDatabase       (HANDLE, DWORD, LONG, LPDWORD);
  319. STDAPI_(BOOL  ) CeSetDatabaseInfo    (CEOID, CEDBASEINFO*);
  320. STDAPI_(CEOID)  CeWriteRecordProps   (HANDLE, CEOID, WORD, CEPROPVAL*);
  321. STDAPI_(HANDLE) CeFindFirstFile      (LPCWSTR, LPCE_FIND_DATA);
  322. STDAPI_(BOOL  ) CeFindNextFile       (HANDLE, LPCE_FIND_DATA);
  323. STDAPI_(BOOL  ) CeFindClose          (HANDLE);
  324. STDAPI_(DWORD ) CeGetFileAttributes  (LPCWSTR);
  325. STDAPI_(BOOL  ) CeSetFileAttributes  (LPCWSTR, DWORD);
  326. STDAPI_(HANDLE) CeCreateFile         (LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
  327. STDAPI_(BOOL  ) CeReadFile           (HANDLE, LPVOID, DWORD, LPDWORD, LPOVERLAPPED);
  328. STDAPI_(BOOL  ) CeWriteFile          (HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED);
  329. STDAPI_(BOOL  ) CeCloseHandle        (HANDLE);
  330. STDAPI_(BOOL  ) CeFindAllFiles       (LPCWSTR, DWORD, LPDWORD, LPLPCE_FIND_DATA);
  331. STDAPI_(BOOL  ) CeFindAllDatabases   (DWORD, WORD, LPWORD, LPLPCEDB_FIND_DATA);
  332. STDAPI_(DWORD ) CeGetLastError       (void);
  333. STDAPI_(DWORD ) CeSetFilePointer     (HANDLE, LONG, PLONG, DWORD);
  334. STDAPI_(BOOL  ) CeSetEndOfFile       (HANDLE);
  335. STDAPI_(BOOL  ) CeCreateDirectory    (LPCWSTR, LPSECURITY_ATTRIBUTES);
  336. STDAPI_(BOOL  ) CeRemoveDirectory    (LPCWSTR);
  337. STDAPI_(BOOL  ) CeCreateProcess      (LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPWSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION);
  338. STDAPI_(BOOL  ) CeMoveFile           (LPCWSTR, LPCWSTR);
  339. STDAPI_(BOOL  ) CeCopyFile           (LPCWSTR, LPCWSTR, BOOL);
  340. STDAPI_(BOOL  ) CeDeleteFile         (LPCWSTR);
  341. STDAPI_(DWORD ) CeGetFileSize        (HANDLE, LPDWORD);
  342. STDAPI_(LONG  ) CeRegOpenKeyEx       (HKEY, LPCWSTR, DWORD, REGSAM, PHKEY);
  343. STDAPI_(LONG  ) CeRegEnumKeyEx       (HKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPWSTR, LPDWORD, PFILETIME);
  344. STDAPI_(LONG  ) CeRegCreateKeyEx     (HKEY, LPCWSTR, DWORD, LPWSTR, DWORD, REGSAM, LPSECURITY_ATTRIBUTES, PHKEY, LPDWORD);
  345. STDAPI_(LONG  ) CeRegCloseKey        (HKEY);
  346. STDAPI_(LONG  ) CeRegDeleteKey       (HKEY, LPCWSTR);
  347. STDAPI_(LONG  ) CeRegEnumValue       (HKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPDWORD, LPBYTE, LPDWORD);
  348. STDAPI_(LONG  ) CeRegDeleteValue     (HKEY, LPCWSTR);
  349. STDAPI_(LONG  ) CeRegQueryInfoKey    (HKEY, LPWSTR, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, PFILETIME);
  350. STDAPI_(LONG  ) CeRegQueryValueEx    (HKEY, LPCWSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD);
  351. STDAPI_(LONG  ) CeRegSetValueEx      (HKEY, LPCWSTR, DWORD, DWORD, LPBYTE, DWORD);
  352. STDAPI_(BOOL  ) CeGetStoreInformation(LPSTORE_INFORMATION);
  353. STDAPI_(INT   ) CeGetSystemMetrics   (INT);
  354. STDAPI_(INT   ) CeGetDesktopDeviceCaps(INT);
  355. STDAPI_(VOID  ) CeGetSystemInfo      (LPSYSTEM_INFO);
  356. STDAPI_(DWORD ) CeSHCreateShortcut   (LPWSTR, LPWSTR);
  357. STDAPI_(BOOL  ) CeSHGetShortcutTarget(LPWSTR, LPWSTR, INT);
  358. STDAPI_(BOOL  ) CeCheckPassword      (LPWSTR);
  359. STDAPI_(BOOL  ) CeGetFileTime        (HANDLE, LPFILETIME, LPFILETIME, LPFILETIME);
  360. STDAPI_(BOOL  ) CeSetFileTime        (HANDLE, LPFILETIME, LPFILETIME, LPFILETIME);
  361. STDAPI_(BOOL  ) CeGetVersionEx       (LPCEOSVERSIONINFO);
  362. STDAPI_(HWND  ) CeGetWindow          (HWND, UINT);
  363. STDAPI_(LONG  ) CeGetWindowLong      (HWND, int);
  364. STDAPI_(int   ) CeGetWindowText      (HWND, LPWSTR, int);
  365. STDAPI_(int   ) CeGetClassName       (HWND, LPWSTR, int);
  366. STDAPI_(VOID  ) CeGlobalMemoryStatus (LPMEMORYSTATUS);
  367. STDAPI_(BOOL  ) CeGetSystemPowerStatusEx(PSYSTEM_POWER_STATUS_EX, BOOL);
  368. STDAPI_(DWORD ) CeGetTempPath        (DWORD, LPWSTR);
  369. STDAPI_(DWORD ) CeGetSpecialFolderPath(int, DWORD, LPWSTR);
  370.  
  371. #endif // #ifndef UNDER_CE
  372.  
  373. #include <ceapimap.h>
  374.  
  375. #ifdef CONN_INTERNAL
  376. #include <prapi.h>  // internal defines
  377. #endif
  378.  
  379. #endif // #ifndef RAPI_H
  380.